1. Field of the Invention
The present invention relates generally to the field of computer systems. More particularly, the present invention relates to the field of memory control for computer systems.
2. Description of Related Art
Synchronous flash memory devices have been designed to respond to an external read request from a processor, for example, with a data burst. When the flash memory device receives the read request, the flash memory device senses a portion of a flash memory containing the requested data. Following this initial lookup latency time, the flash memory device outputs not only the requested data but also any additionally sensed data in anticipation the processor may request this other data in the future. This data burst continues each clock cycle until all of the sensed data has been output to the processor. The flash memory device may then accept another read request.
By sensing more data than was requested, that is by sensing wide, the flash memory device more fully uses available bus bandwidth and provides a prediction mechanism to help reduce latency for future read requests. As one example, a processor may request a single data word 16 bits in length. If the requested data word is not stored in a cache memory for the processor, the processor will issue a read request for the data word from the flash memory device. The flash memory device may then sense four consecutive data words, one of which is the requested data word, and output all four data words, sixteen bits at a time over four clock cycles for example, to the processor. The processor may then store all four data words in its cache memory. If the processor later requests any one of the three non-requested data words, the processor can obtain the requested data from its cache memory without incurring another lookup by the flash memory device.
If the non-requested data is not later requested or used, however, the flash memory device has wasted energy in sensing and outputting the additional data. Also, the flash memory device may have unnecessarily delayed the performance of other read requests due to the additional time required to output the non-requested data.